package com.cneport.das.common.validate;

/**
 * @Desc 字段类型的枚举
 * @Ver 1.0
 * @Author GavinZhang
 * @Company xxxxx 公司
 * @Date 2021-12-28 10:22:04
 */
public enum FvEnum {
    /**
     * 日期格式校验
     */
    DATE_STR(FieldCheckHolder.DATE_STR),
    /**
     * 普通字符串校验
     */
    STRING(FieldCheckHolder.STRING),

    /**
     * double类型校验
     */
    DOUBlE(FieldCheckHolder.DOUBLE),

    /**
     * Integer类型校验
     */
    INTEGER(FieldCheckHolder.INTEGER);


    /**
     * 校验接口类
     */
    private IValidator validator;

    private FvEnum(IValidator validator) {
        this.validator = validator;
    }

    /**
     * 校验接口方法
     *
     * @param fn
     * @param fieldName
     * @param fieldVal
     * @param resultVO
     * @param <T>
     * @return
     */
    public <T> ResultVO validate(FieldCheck fn, String fieldName, T fieldVal, ResultVO resultVO) {
        return validator.validate(fn, fieldName, fieldVal, resultVO);
    }
}
